---
title: PolicyInformation
summary: API reference for PolicyInformation.
status: draft
owner: SAIF Claims BOF team
last_reviewed: 2026-08-21
library: SAIF.Business.Policy
reference_type: embedded
---

# PolicyInformation

Provides shared, read-only policy lookups that bypass the BOF `Criteria` pattern and issue direct Oracle requests for policy dates, market classification, ownership, print status, and rating-related scalars. Its callers receive business-ready values, while the class hides the specific SQL or stored-procedure call used to retrieve them.

## Purpose
- Centralize small policy-data lookups so callers do not embed ad hoc SQL for common date and classification questions.
- Translate raw database values into library enums such as `Enums.MarketTypes` and `Enums.PolicyOwnershipSystems`.
- Wrap one stored-procedure call for minimum premium retrieval alongside the scalar queries used elsewhere in the library.

## Context
- Namespace: `SAIF.Business.Policy`
- Assembly/package: `SAIF.Business.Policy`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `MaxPolicyEffectiveDate` | `Public Shared ReadOnly Property MaxPolicyEffectiveDate(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal) As Date` | Returns the most recent effective date found for the policy in `POLICY_PERIOD` using [SQL-008](../../sql/SQL-008-max-policy-effective-date.md). |
| `PolicyPeriodExpirationDate` | `Public Shared ReadOnly Property PolicyPeriodExpirationDate(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As Date` | Returns the expiration date for the requested policy period from `POLICY_PERIOD` or `POLICY_PERIOD_NON_WCIS` using [SQL-011](../../sql/SQL-011-policy-period-expiration-date.md). |
| `AnniversaryRateDate` | `Public Shared ReadOnly Property AnniversaryRateDate(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As Date` | Returns the anniversary rate date for the requested policy period using [SQL-004](../../sql/SQL-004-policy-period-anniversary-rate-date.md). |
| `MarketType` | `Public Shared ReadOnly Property MarketType(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal) As Enums.MarketTypes` | Looks up the policy's market type code and converts it to `Enums.MarketTypes` using [SQL-005](../../sql/SQL-005-policy-market-type-lookup.md). |
| `MaxPremiumHistorySetId` | `Public Shared ReadOnly Property MaxPremiumHistorySetId(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As Decimal` | Returns the highest qualifying premium-history set ID for the policy period using [SQL-009](../../sql/SQL-009-max-premium-history-set-id.md). |
| `PolicyMinimumPremium` | `Public Shared ReadOnly Property PolicyMinimumPremium(ByVal inDPI As IDataPortalInfo, ByVal inPremHistSetID As Decimal) As Decimal` | Calls the rating package procedure and returns the `out_minimum_premium_amount` output from [SQL-010](../../sql/SQL-010-policy-minimum-premium-procedure.md). |
| `IsInformationPagePrinted` | `Public Shared ReadOnly Property IsInformationPagePrinted(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As Boolean` | Checks whether a printed `P401` endorsement exists for the policy period using [SQL-007](../../sql/SQL-007-information-page-printed-check.md). |
| `GetPolicyOwnershipSystem` | `Public Shared ReadOnly Property GetPolicyOwnershipSystem(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal) As Enums.PolicyOwnershipSystems` | Calls the Oracle ownership function and maps the result to `WCIS` or `SAIFQuote` using [SQL-006](../../sql/SQL-006-policy-ownership-system-lookup.md). |

## Behavioral notes
- `MaxPolicyEffectiveDate`, `PolicyPeriodExpirationDate`, and `AnniversaryRateDate` each build a scalar portal request, execute it immediately, and cast the returned value to `Date`.
- `MarketType` trims the returned code and converts it through `Enums.ConvertMarketType(...)`.
- `MaxPremiumHistorySetId` is the only date/policy scalar that explicitly guards for `DBNull`; it returns `0` when no qualifying row is returned.
- `PolicyMinimumPremium` swallows any exception from the stored-procedure execution in an empty `Catch` block, so database or provider failures can fall through to the default return path.**
- `PolicyMinimumPremium` reads `out_minimum_premium_amount` but never uses the `out_expense_constant_amount` output value after retrieval.
- `MaxPolicyEffectiveDate` and `PolicyPeriodExpirationDate` cast `DataRequest.Result` directly to `Date` without a `DBNull` guard, so behavior when the query returns no row could not be confirmed.**

## Constraints and usage notes
- Every member requires an `IDataPortalInfo` instance because all data access is routed through the framework data-access layer.
- The class contains commented-out legacy SQL members and properties; only the eight public shared members above are active.
- `GetPolicyOwnershipSystem` relies on the database function returning a value that `.ToBoolean` can interpret as true or false.

> **Note:** Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources
- `SAIF.Business.Policy\PolicyInformation.vb`